Systems and methods for determining viewing paths through videos

ABSTRACT

Multiple framings of a video may define different positionings of a viewing window at different moments within the video. The positionings of the viewing window defined by the multiple framings may be used as fixed positionings of the viewing window in a viewing path. The viewing path may define changes in the positioning of the viewing window between the fixed positionings. A presentation of the video may be generated to include the extents of the video within the viewing window.

FIELD

This disclosure relates to determining viewing paths through videosbased on multiple framings of visual content of the videos.

BACKGROUND

A wide field of view video (e.g., spherical video, panoramic video) mayinclude more visual content than may be viewed at once. Manuallychanging punchout of the video to display different spatial portions ofthe video may be difficult and time consuming.

SUMMARY

This disclosure relates to determining viewing paths through videos.Video information, framing information, and/or other information may beobtained. The video information may define a video. The video mayinclude video content having a progress length. The video content mayinclude visual content viewable as a function of progress through theprogress length. The visual content may have a field of view. Framinginformation for the video may define multiple framings of the visualcontent at multiple moments within the progress length. An individualframing of the visual content may define a positioning of a viewingwindow within the field of view of the visual content at a correspondingmoment within the progress length. The viewing window may define extentsof the visual content to be included within a presentation of the videocontent. The multiple framings of the visual content may include a firstframing of the visual content at a first moment within the progresslength, a second framing of the visual content at a second moment withinthe progress length, and/or other framing of the visual content at othermoments within the progress length. The second framing of the visualcontent may be different from the first framing of the visual content.

A viewing path for the video may be determined based on the framinginformation and/or other information. The viewing path may define thepositioning of the viewing window within the field of view of the visualcontent as the function of progress through the progress length. Thepositioning of the viewing window may include a first positioning of theviewing window at the first moment, a second positioning of the viewingwindow at the second moment, and/or other positioning of the viewingwindow at other moments. The first positioning of the viewing window atthe first moment may be determined based on the first framing of thevisual content and/or other information. The second positioning of theviewing window at the second moment may be determined based on thesecond framing of the visual content and/or other information. Thepresentation of the video content may be determined based on the viewingpath and/or other information. The presentation of the video content mayinclude the extents of the visual content within the viewing window.

A system that determines viewing paths through videos may include one ormore electronic storage, processor and/or other components. Theelectronic storage may store video information defining video,information relating to video, information relating to visual content ofvideo, framing information for video, information relating to framingsof visual content, information relating to viewing window, informationrelating to viewing path, information relating to presentation of videocontent, and/or other information.

The processor(s) may be configured by machine-readable instructions.Executing the machine-readable instructions may cause the processor(s)to facilitate determining viewing paths through videos. Themachine-readable instructions may include one or more computer programcomponents. The computer program components may include one or more of avideo information component, a framing information component, a viewingpath component, a presentation component, and/or other computer programcomponents.

The video information component may be configured to obtain videoinformation and/or other information. Video information may define avideo. The video may include video content having a progress length. Thevideo content may include visual content viewable as a function ofprogress through the progress length. The visual content may have afield of view. In some implementations, the video may include aspherical video and the field of view may include a spherical field ofview. The visual content of the spherical video may be viewable from apoint of view as the function of progress through the progress length.

The framing information component may be configured to obtain framinginformation for the video and/or other information. The framinginformation for the video may define multiple framings of the visualcontent of the video at multiple moments within the progress length. Anindividual framing of the visual content may define a positioning of aviewing window within the field of view of the visual content at acorresponding moment within the progress length. The viewing window maydefine extents of the visual content to be included within apresentation of the video content. The multiple framings of the visualcontent may include a first framing of the visual content at a firstmoment within the progress length, a second framing of the visualcontent at a second moment within the progress length, and/or otherframing of the visual content. The second framing of the visual contentmay be different from the first framing of the visual content.

In some implementations, the individual framing of the visual contentmay define the positioning of the viewing window within the field ofview of the visual content based on a viewing direction, a viewing size,a viewing rotation, and/or other information. In some implementations,the individual framing of the visual content may further define aviewing projection of the visual content within the viewing window.

In some implementations, at least one of the multiple framings mayinclude a moment-to-duration framing. The moment-to-duration framing mayextend a moment within the progress length to a duration longer than themoment within the presentation of the video content. Themoment-to-duration framing may include multiple sub-framings within theduration.

In some implementations, the framing information may be obtained basedon a user's interaction with a user interface and/or other information.The user interface may enable the user to set one or more of the viewingdirection, the viewing size, the viewing rotation, the viewingprojection, and/or other information.

The viewing path component may be configured to determine one or moreviewing paths for the video based on the framing information and/orother information. A viewing path may define the positioning of theviewing window within the field of view of the visual content as thefunction of progress through the progress length. The positioning of theviewing window may include a first positioning of the viewing window atthe first moment based on the first framing of the visual content, asecond positioning of the viewing window at the second moment based onthe second framing of the visual content, and/or other positioning ofthe viewing window.

In some implementations, determination of a viewing path for the videobased on the framing information may include determination of changes inthe positioning of the viewing window within the field of view of thevisual content based on the multiple framings of the visual content atmultiple moments within the progress length and/or other information. Insome implementations, the viewing path may include viewing path segmentsfor individual pairs of adjacent framings. The viewing path may includea first viewing path segment for a pair of the first framing and thesecond framing, and/or other viewing paths segments. The first viewingpath segment may define changes in the positioning of the viewing windowwithin the field of view of the visual content from the firstpositioning at the first moment to the second positioning at the secondmoment.

In some implementations, the changes in the positioning of the viewingwindow within the field of view of the visual content from the firstpositioning at the first moment to the second positioning at the secondmoment may include changes in one or more of a viewing direction, aviewing size, a viewing rotation, and/or a viewing projection for theviewing window.

In some implementations, a rate of the changes in the positioning of theviewing window within the field of view of the visual content at thesecond moment may be determined based on the first framing of the visualcontent at the first moment, a third framing of the visual content at athird moment, and/or other information. The second moment may be betweenthe first moment and the third moment.

The presentation component may be configured to generate thepresentation of the video content based on the viewing path and/or otherinformation. The presentation of the video content may include theextents of the visual content within the viewing window.

These and other objects, features, and characteristics of the systemand/or method disclosed herein, as well as the methods of operation andfunctions of the related elements of structure and the combination ofparts and economies of manufacture, will become more apparent uponconsideration of the following description and the appended claims withreference to the accompanying drawings, all of which form a part of thisspecification, wherein like reference numerals designate correspondingparts in the various figures. It is to be expressly understood, however,that the drawings are for the purpose of illustration and descriptiononly and are not intended as a definition of the limits of theinvention. As used in the specification and in the claims, the singularform of “a,” “an,” and “the” include plural referents unless the contextclearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system that determines viewing paths throughvideos.

FIG. 2 illustrates a method for determining viewing paths throughvideos.

FIG. 3 illustrates an example spherical visual content.

FIG. 4 illustrates example viewing directions for spherical videocontent.

FIGS. 5A-5B illustrate example extents of spherical visual content.

FIGS. 6A, 6B, 6C, and 6D illustrate example framings of visual content.

FIGS. 7A and 7B illustrate examples of viewing path segments.

FIGS. 8A and 8B illustrate an example viewing path.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 10 for determining viewing paths throughvideos. The system 10 may include one or more of a processor 11, aninterface 12 (e.g., bus, wireless interface), an electronic storage 13,and/or other components. Video information, framing information, and/orother information may be obtained by the processor 11. The videoinformation may define a video. The video may include video contenthaving a progress length. The video content may include visual contentviewable as a function of progress through the progress length. Thevisual content may have a field of view. Framing information for thevideo may define multiple framings of the visual content at multiplemoments within the progress length. An individual framing of the visualcontent may define a positioning of a viewing window within the field ofview of the visual content at a corresponding moment within the progresslength. The viewing window may define extents of the visual content tobe included within a presentation of the video content. The multipleframings of the visual content may include a first framing of the visualcontent at a first moment within the progress length, a second framingof the visual content at a second moment within the progress length,and/or other framing of the visual content at other moments within theprogress length. The second framing of the visual content may bedifferent from the first framing of the visual content.

A viewing path for the video may be determined by the processor 11 basedon the framing information and/or other information. The viewing pathmay define the positioning of the viewing window within the field ofview of the visual content as the function of progress through theprogress length. The positioning of the viewing window may include afirst positioning of the viewing window at the first moment, a secondpositioning of the viewing window at the second moment, and/or otherpositioning of the viewing window at other moments. The firstpositioning of the viewing window at the first moment may be determinedbased on the first framing of the visual content and/or otherinformation. The second positioning of the viewing window at the secondmoment may be determined based on the second framing of the visualcontent and/or other information. The presentation of the video contentmay be generated by the processor 11 based on the viewing path and/orother information. The presentation of the video content may include theextents of the visual content within the viewing window.

The electronic storage 13 may be configured to include electronicstorage medium that electronically stores information. The electronicstorage 13 may store software algorithms, information determined by theprocessor 11, information received remotely, and/or other informationthat enables the system 10 to function properly. For example, theelectronic storage 13 may store video information defining video,information relating to video, information relating to visual content ofvideo, framing information for video, information relating to framingsof visual content, information relating to viewing window, informationrelating to viewing path, information relating to presentation of videocontent, and/or other information.

A video may include content captured by a single image capture device(e.g., image sensor, camera), multiple image capture devices, and/or oneor more other capture devices (e.g., sound sensor, microphone). A videoincluding content captured by multiple capture devices may includecontent captured at the same location(s), content captured at differentlocations, content captured at the same time(s), and/or content capturedat different times. A video may include edited content. For example, avideo may include content of one or more other videos that have beenedited into a video edit.

Content of one or more videos may be referred to as video content. Videocontent may have a progress length. That is, a video may include videocontent having a progress length. A progress length may be defined interms of time durations and/or frame numbers. For example, video contentof a video may have a time duration of 60 seconds. Video content of avideo may have 1800 video frames. Video content having 1800 video framesmay have a play time duration of 60 seconds when viewed at 30 frames persecond. Other progress lengths, time durations, and frame numbers arecontemplated.

Video content may include visual content, audio content, and/or othercontent. For example, video content may include visual content viewableas a function of progress through the progress length of the videocontent, audio content playable as a function of progress through theprogress length of the video content, and/or other content that may beplayed back as a function of progress through the progress length of thevideo content.

Visual content may refer to content of one or more images and/or one ormore videos that may be consumed visually. For example, visual contentmay be included within one or more image and/or one or more video framesof a video. The video frame(s) may define the visual content of thevideo content. That is, video content may include video frame(s) thatdefine the visual content of the video content. Video frame(s) maydefine visual content viewable as a function of progress through theprogress length of the video content. A video frame may include an imageof the video content at a moment within the progress length of the videocontent. A video frame may include one or more of I-frame, P-frame,B-frame, frame of pixels, and/or other video frames. Visual content maybe generated based on light received within a field of view of a singleimage sensor or within fields of view of multiple image sensors during acapture period.

Visual content may have a field of view. A field of view of visualcontent may refer to an extent of a scene captured and/or viewablewithin the visual content. A field of view of visual content may referto a part of a scene from which light is received for generation of thevisual content. For example, the video may include a wide field of viewvideo, such as a spherical video defining visual content viewable from apoint of view as a function of progress through the progress length, andthe field of view may of the spherical video may include a sphericalfield of view (360 degrees of capture). Other wide field of view arecontemplated. A field of view of visual content may be static(unchanging) or dynamic (changing). For example, a field of view ofvisual content of video content may change as a function of progressthrough the progress length of the video content. Other fields of vieware contemplated.

Audio content may include audio/sound captured (e.g., by soundsensor(s), microphone(s)) with the capture of the visual content and/oraudio/sound provided as an accompaniment for the visual content. Audiocontent may include one or more of voices, activities, songs, music,and/or other audio/sounds. For example, audio content may include soundscaptured by a single sound sensor or an array of sound sensors. Thesound sensor(s) may receive and convert sounds into output signals. Theoutput signals may convey sound information and/or other information.The sound information may define audio content in one or more formats,such as WAV, MP3, MP4, RAW. Audio content may include audio/soundgenerated by one or more computing devices, such as procedural audio.Audio content may be synchronized with the visual content. For example,audio content may include music, song, and/or soundtrack, and the visualcontent of the video content may be synchronized with music, song,and/or soundtrack.

In some implementations, video content may include one or more ofspherical video content, virtual reality content, and/or other videocontent. Spherical video content and/or virtual reality content mayinclude visual content viewable from one or more points of view as afunction of progress through the progress length of thespherical/virtual reality video content.

Spherical video content may refer to video content generated throughcapture of multiple views from a location. Spherical video content maybe captured through the use of one or more image capture devices tocapture images/videos from a location. The captured images/videos may bestitched together to form the spherical video content. Spherical videocontent may include full spherical video content (360 degrees ofcapture) or partial spherical video content (less than 360 degrees ofcapture). Partial spherical video content may be referred to aspanoramic video content.

Visual content of spherical video content may be included within one ormore spherical video frames of the spherical video. The spherical videoframe(s) may define the visual content of the video content. That is,spherical video content may include spherical video frame(s) that definethe visual content of the spherical video content. Spherical videoframe(s) may define visual content viewable from a point of view (e.g.,within a sphere, center of a sphere) as a function of progress throughthe progress length of the spherical video content.

A spherical video frame may include a spherical image of the sphericalvideo content at a moment within the progress length of the sphericalvideo content. Visual content of spherical video content may begenerated based on light received within a field of view of a singleimage sensor or within fields of view of multiple image sensors during acapture period. For example, multiple images/videos captured by multiplecameras/image sensors may be combined/stitched together to form thevisual content of the spherical video content. The field of view ofcamera(s)/image sensor(s) may be moved/rotated (e.g., viamovement/rotation of optical element(s), such as lens, of the imagesensor(s)) to capture multiple images/videos from a location, which maybe combined/stitched together to form the visual content of thespherical video content.

For example, multiple images captured by multiple cameras/images sensorsat a moment in time may be combined/stitched together to form aspherical video frame for the moment in time. A spherical video framemay include a full spherical image capture (360-degrees of capture,including opposite poles) or a particular spherical image capture (lessthan 360-degrees of capture). A spherical image (e.g., spherical videoframe) may be comprised of multiple sub-images (sub-frames). Sub-imagesmay be generated by a single image sensor (e.g., at different times asthe field of view of the image sensor is rotated) or by multiple imagesensors (e.g., individual sub-images for a moment in time captured byindividual image sensors and combined/stitched together to form thespherical image).

In some implementations, spherical video content may be stored with atleast a 5.2K resolution. Using a 5.2K spherical video content may enableviewing windows (e.g., directed to a portion of a spherical video frame)for the spherical video content with resolution close to 1080p. In someimplementations, spherical video content may include 12-bit videoframes. Other sizes and qualities of spherical video content (e.g.,5.6K, 8K+) are contemplated. In some implementations, spherical videocontent may be consumed as virtual reality content.

Virtual reality content may refer to video content that may be consumedvia virtual reality experience. Virtual reality content may associatedifferent directions within the virtual reality content with differentviewing directions, and a user may view a particular visual portion(e.g., visual content in a particular direction) within the virtualreality content by looking in a particular direction. For example, auser may use a virtual reality headset to change the user's direction ofview. The user's direction of view may correspond to a particulardirection of view within the virtual reality content. For example, aforward/north looking direction of view for a user may correspond to aforward/north direction of view within the virtual reality content.

Spherical video content and/or virtual reality content may have beencaptured at one or more locations. For example, spherical video contentand/or virtual reality content may have been captured from a stationaryposition (e.g., a seat in a stadium). Spherical video content and/orvirtual reality content may have been captured from a moving position(e.g., a moving bike). Spherical video content and/or virtual realitycontent may include video content captured from a path taken by theimage capture device(s) in the moving position. For example, sphericalvideo content and/or virtual reality content may include video contentcaptured by a spherical camera of a person walking around in a musicfestival.

FIG. 3 illustrates an example spherical visual content 300. Thespherical visual content 300 may include content of a spherical image ora spherical video. The spherical visual content 300 may include visualcontent viewable from a point of view (e.g., center of sphere) as afunction of progress through the progress length of the spherical visualcontent 300. FIG. 3 illustrates example rotational axes for thespherical visual content 300. Rotational axes for the spherical visualcontent 300 may include a yaw axis 310, a pitch axis 320, a roll axis330, and/or other axes. Rotations about one or more of the yaw axis 310,the pitch axis 320, the roll axis 330, and/or other axes may definedirections of view (e.g., viewing directions) for the spherical visualcontent 300.

For example, a 0-degree rotation of the spherical visual content 300around the yaw axis 310 may correspond to a front viewing direction. A90-degree rotation of the spherical visual content 300 around the yawaxis 310 may correspond to a right viewing direction. A 180-degreerotation of the spherical visual content 300 around the yaw axis 310 maycorrespond to a back-viewing direction. A −90-degree rotation of thespherical visual content 300 around the yaw axis 310 may correspond to aleft viewing direction.

A 0-degree rotation of the spherical visual content 300 around the pitchaxis 320 may correspond to a viewing direction that may be level withrespect to horizon. A 45-degree rotation of the spherical visual content300 around the pitch axis 320 may correspond to a viewing direction thatmay be pitched up with respect to horizon by 45-degrees. A 90-degreerotation of the spherical visual content 300 around the pitch axis 320may correspond to a viewing direction that may be pitched up withrespect to horizon by 90-degrees (looking up). A −45-degree rotation ofthe spherical visual content 300 around the pitch axis 320 maycorrespond to a viewing direction that may be pitched down with respectto horizon by 45-degrees. A −90-degree rotation of the spherical visualcontent 300 around the pitch axis 320 may correspond to a viewingdirection that may be pitched down with respect to horizon by 90-degrees(looking down).

A 0-degree rotation of the spherical visual content 300 around the rollaxis 330 may correspond to a viewing direction that may be upright. A90-degree rotation of the spherical visual content 300 around the rollaxis 330 may correspond to a viewing direction that may be rotated tothe right by 90-degrees. A −90-degree rotation of the spherical visualcontent 300 around the roll axis 330 may correspond to a viewingdirection that may be rotated to the left by 90-degrees. Other rotationsand viewing directions are contemplated.

A playback of video content (e.g., the spherical video content) mayinclude presentation of one or more portions of visual content on one ormore displays based on a viewing window and/or other information. Aviewing window may define extents of the visual content viewable on oneor more displays as the function of progress through the progress lengthof the video content. The viewing window may define extents of thevisual content presented on the display(s) as the function of progressthrough the progress length of the video content. For spherical videocontent, the viewing window may define extents of the visual contentviewable from the point of view as the function of progress through theprogress length of the spherical video content.

The viewing window may be characterized by viewing directions, viewingsizes (e.g., viewing zoom, viewing magnification), viewing rotations,and/or other information. A viewing direction may define a direction ofview for video content. A viewing direction may define the angle/visualportion of the video content at which the viewing window may bedirected. A viewing direction may define a direction of view for thevideo content selected by a user, defined by instructions for viewingthe video content, and/or determined based on other information aboutviewing the video content as a function of progress through the progresslength of the video content (e.g., director track specifying viewingdirection to be presented during playback as a function of progressthrough the progress length of the video content). For spherical videocontent, a viewing direction may define a direction of view from thepoint of view from which the visual content may be defined. Viewingdirections for the video content may be characterized by rotationsaround the yaw axis 310, the pitch axis 320, the roll axis 330, and/orother axes. For example, a viewing direction of a 0-degree rotation ofthe video content around a yaw axis (e.g., the yaw axis 310) and a0-degree rotation of the video content around a pitch axis (e.g., thepitch axis 320) may correspond to a front viewing direction (the viewingwindow may be directed to a forward portion of the visual contentcaptured within the spherical video content).

For example, FIG. 4 illustrates example changes in viewing directions400 (e.g., selected by a user for video content, specified by adirector's track) as a function of progress through the progress lengthof the video content. The viewing directions 400 may change as afunction of progress through the progress length of the video content.For example, at 0% progress mark, the viewing directions 400 maycorrespond to a zero-degree yaw angle and a zero-degree pitch angle. At25% progress mark, the viewing directions 400 may correspond to apositive yaw angle and a negative pitch angle. At 50% progress mark, theviewing directions 400 may correspond to a zero-degree yaw angle and azero-degree pitch angle. At 75% progress mark, the viewing directions400 may correspond to a negative yaw angle and a positive pitch angle.At 87.5% progress mark, the viewing directions 400 may correspond to azero-degree yaw angle and a zero-degree pitch angle. The viewingdirections 400 may define a path of movement for the viewing window(e.g., a trajectory followed by the viewing window) as a function ofprogress through the progress length of the video content. Other viewingdirections are contemplated.

A viewing size may define a size of the viewing window. A viewing sizemay define a size (e.g., size, magnification, viewing angle) of viewableextents of visual content within the video content. A viewing size maydefine the dimensions of the viewing window. A viewing size may define asize of viewable extents of visual content within the video contentselected by a user, defined by instructions for viewing the videocontent, and/or determined based on other information about viewing thevideo content as a function of progress through the progress length ofthe video content (e.g., director track specifying viewing size to bepresented as a function of progress through the progress length of thevideo content). In some implementations, a viewing size may definedifferent shapes of viewable extents. For example, a viewing window maybe shaped as a rectangle, a triangle, a circle, and/or other shapes.

A viewing rotation may define a rotation of the viewing window. Aviewing rotation may define one or more rotations of the viewing windowabout one or more axis. In some implementations, a viewing rotation maybe defined by one or more parameters of a viewing direction. Forexample, a viewing rotation may be defined based on rotation about anaxis (e.g., the roll axis 330) corresponding to a viewing direction. Aviewing rotation may define a rotation of the viewing window selected bya user, defined by instructions for viewing the video content, and/ordetermined based on other information about viewing the video content asa function of progress through the progress length of the video content(e.g., director track specifying viewing rotation to be used as afunction of progress through the progress length of the video content).For example, a viewing rotation of a viewing window having a rectangularshape may determine whether the rectangular viewing window is to bepositioned in a portrait orientation (e.g., for a portrait view of thevideo content), in a landscape orientation (e.g., for a landscape viewof the video content), and/or other orientation with respect to thevisual content of the video content.

FIGS. 5A-5B illustrate examples of extents for spherical visual content500. In FIG. 5A, the size of the viewable extent of the spherical visualcontent 500 may correspond to the size of extent A 510. In FIG. 5B, thesize of viewable extent of the spherical visual content 500 maycorrespond to the size of extent B 520. Viewable extent of the sphericalvisual content 500 in FIG. 5A may be smaller than viewable extent of thespherical visual content 500 in FIG. 5B. The viewable extent of thespherical visual content 500 in FIG. 5B may be more tilted with respectto the spherical visual content 500 than viewable extent of thespherical visual content 500 in FIG. 5A. Other viewing sizes and viewingrotations are contemplated.

In some implementations, the viewing window may be characterized by aviewing projection. A viewing projection may define how pixels withinthe viewing window is arranged for presentation on a display. A viewingprojection may define how the pixels of an image are arranged to formthe visual content. A viewing projection may refer to how portions ofthe visual content/pixels are mapped onto a two-dimensional plane (e.g.,two-dimensional image). For example, a viewing projection may arrangepixels of the image such that one or more visual elements (defined byone or more pixels) of the visual content are stretched (e.g., at thetop or bottom of an image arranged using an equirectangular projection)or not stretched (e.g., middle of an image arranged using a rectilinearprojection). Example viewing projections may include rectilinearprojection, cylindrical projection, Mercator projection, Millerprojection, Lambert projection, equirectangular projection,stereographic projection, fisheye projection, equisolid projection,orthographic projection, cubic projection, sinusoidal projection,transverse projection (rotation of a projection by 90 degrees), Paniniprojection, architectural projection, and/or other viewing projections.

Referring back to FIG. 1, the processor 11 may be configured to provideinformation processing capabilities in the system 10. As such, theprocessor 11 may comprise one or more of a digital processor, an analogprocessor, a digital circuit designed to process information, a centralprocessing unit, a graphics processing unit, a microcontroller, ananalog circuit designed to process information, a state machine, and/orother mechanisms for electronically processing information. Theprocessor 11 may be configured to execute one or more machine-readableinstructions 100 to facilitate determining viewing paths through videos.The machine-readable instructions 100 may include one or more computerprogram components. The machine-readable instructions 100 may includeone or more of a video information component 102, a framing informationcomponent 104, a viewing path component 106, a presentation component108, and/or other computer program components.

The video information component 102 may be configured to obtain videoinformation defining one or more videos (e.g., non-spherical video,spherical video, panoramic video) and/or other information. Obtainingvideo information may include one or more of accessing, acquiring,analyzing, determining, examining, identifying, loading, locating,opening, receiving, retrieving, reviewing, storing, and/or otherwiseobtaining the video information. The video information component 102 mayobtain video information from one or more locations. For example, thevideo information component 102 may obtain video information from astorage location, such as the electronic storage 13, electronic storageof information and/or signals generated by one or more image sensors,electronic storage of a device accessible via a network, and/or otherlocations. The video information component 102 may obtain videoinformation from one or more hardware components (e.g., an image sensor)and/or one or more software components (e.g., software running on acomputing device).

The video information component 102 may be configured to obtain videoinformation defining a video during acquisition of the video and/orafter acquisition of the video by one or more image sensors/imagecapture devices. For example, the video information component 102 mayobtain video information defining a video while the video is beingcaptured by one or more image sensors/image capture devices. The videoinformation component 102 may obtain video information defining a videoafter the video has been captured and stored in memory (e.g., theelectronic storage 13).

In some implementations, the video information may be obtained based ona user's interaction with a user interface/application (e.g., videoediting application, video player application), and/or otherinformation. For example, a user interface/application may provideoption(s) for a user to select one or more videos to be presented and/orfor which viewing paths are to be determined. The video informationdefining the video(s) may be obtained based on the user's selection ofthe video(s) through the user interface/video application.

Video information may define one or more videos. The video informationmay define a video by including information that defines one or morecontent, qualities, attributes, features, and/or other aspects of thevideo. For example, the video information may define a video byincluding information that makes up the content of the video and/orinformation that is used to determine the content of the video. Forinstance, the video information may include information that makes upand/or is used to determine the arrangement of pixels, characteristicsof pixels, values of pixels, and/or other aspects of pixels that definevisual content of the video. For example, the video information mayinclude information that makes up and/or is used to determine pixels ofvideo frames of the video. Other types of video information arecontemplated.

Video information may be stored within a single file or multiple files.For example, video information defining a video may be stored within avideo file, multiple video files, a combination of different files(e.g., a visual file and an audio file), and/or other files. Videoinformation may be stored in one or more formats or containers. A formatmay refer to one or more ways in which the information defining a videois arranged/laid out (e.g., file format). A container may refer to oneor more ways in which information defining a video is arranged/laid outin association with other information (e.g., wrapper format).

The framing information component 104 may be configured to obtainframing information for the video and/or other information. Obtainingframing information may include one or more of accessing, acquiring,analyzing, determining, examining, identifying, loading, locating,opening, receiving, retrieving, reviewing, storing, and/or otherwiseobtaining the framing information. The framing information component 104may obtain framing information from one or more locations. For example,the framing information component 104 may obtain framing informationfrom a storage location, such as the electronic storage 13, electronicstorage of a device accessible via a network, and/or other locations.The framing information component 10 r may obtain framing informationfrom one or more hardware components (e.g., computing device, electronicstorage) and/or one or more software components (e.g., software runningon a computing device). Framing information may be stored within asingle file or multiple files.

In some implementations, the framing information component 104 mayobtain framing information based on a user's interaction with a userinterface/application (e.g., video editing application, video playerapplication), and/or other information. The user interface/applicationmay provide option(s) for a user to set and/or define one or moreframings of the visual content. For example, the userinterface/application may enable the user to select individual momentswithin the progress length to specify a framing of the visual content,and enable the user to set one or more of the viewing direction, theviewing size, the viewing rotation, the viewing projection, and/or otherinformation to define the individual framings of the visual content atthe selected moments.

In some implementation, the framing information component 104 may obtainframing information based on the video information and/or the videoinformation component 102 obtaining the video information. For example,the framing information may be associated with the video/videoinformation obtained by the video information component 102, and theframing information component 104 may obtain the associated framinginformation based on obtaining of the video information. The framinginformation may be included within metadata of the obtained video, andthe framing information may be obtained based on obtaining (e.g.,selection, retrieval) of the video. The framing information may beincluded within the framing information, and the framing n informationcomponent 104 may obtain framing information by extracting the framinginformation from the video information.

In some implementations, the framing information component 104 mayobtain framing information based on analysis of the video informationand/or the video defined by the video information. For example, visualcontent detection (e.g., object detection, scene detection, activitydetection) and/or audio content detection (e.g., sound detection, speechdetection, command detection, cheering detection) may be performed andthe framings of the visual content (e.g., number of framings; locationsof the framings within the progress length; viewing directions, viewingsizes, viewing rotations, and/or viewing projections of framings) may bedetermined based on the results of the visual content detection (e.g.,object, scene, and/or activity detected within the visual content)and/or the audio content detection (e.g., sound, speech, command, and/orcheering detected within the visual content). That is, content analysisof the video content may be used to automatically determine framings ofthe visual content.

The framing information for the video may define multiple framings ofthe visual content of the video at multiple moments within the progresslength. Framings of the visual content of the video may includedifferent framings of the visual content at different moments within theprogress length. An individual framing of the visual content may definea positioning of a viewing window within the field of view of the visualcontent at a corresponding moment within the progress length. Theviewing window may define extents of the visual content to be includedwithin a presentation of the video content. A positioning of the viewingwindow within the field of view of the visual content may refer toplacement of the viewing window within the field of view of the visualcontent. The positioning/placement of the viewing window may be definedby one or more of viewing direction, viewing size, viewing rotation,and/or other information. An individual framing of the visual contentmay define arrangement of pixels within the viewing window forpresentation. The arrangement of the pixels within the viewing windowmay be defined by viewing projection and/or other information.

The multiple framings of the visual content may include differentframings of the visual content at different moments within the progresslength. A moment within the progress length may include a point (e.g., apoint in time, a video frame) or a duration (e.g., a duration of time, agrouping of adjacent video frames) within the progress length.Individual framings of the visual content may define positionings of theviewing window within the field of view of the visual content based onthe corresponding viewing direction, viewing size, viewing rotation,and/or other information. Individual framings of the visual content mayfurther define corresponding viewing projections of the visual contentwithin the viewing window.

For example, FIGS. 6A, 6B, and 6C illustrate different framings ofvisual content 600 at different moments within the progress length ofthe visual content 600. For instance, the visual content 600 may includevisual content of a video, and FIGS. 6A, 6B, and 6C may illustrate thevisual content 600 within different video frames of the video (contentof the video frames at different moments within the progress length).For example, as shown in FIG. 6A, a framing of the visual content 600 ata first moment within the progress length may include a viewing window610 being positioned at the front of the visual content 600 and beingleveled within the visual content 600. As shown in FIG. 6B, a framing ofthe visual content 600 at a second moment (subsequent to the firstmoment) within the progress length may include the viewing window 610being positioned at the back of the visual content 600 and being leveledwithin the visual content 600. As shown in FIG. 6C, a framing of thevisual content 600 at a third moment (subsequent to the second moment)within the progress length may include the viewing window 610 beingpositioned at front-upper-right of the visual content 600. The framingof the visual content 600 at the third moment may include the viewingwindow 610 being tilted and having a different dimension (e.g.,different shape, smaller size) than the framing of the visual content atthe first moment and the second moment. Other framings of the visualcontent are contemplated.

In some implementations, at least one of the multiple framings mayinclude a moment-to-duration framing. A moment-to-duration framing mayrefer to a framing that changes the progress length of the video/visualcontent. For example, a moment-to-duration framing may extend a moment(e.g., point in time, duration of time) within the progress length to aduration longer than the moment within the progress length/presentationof the video content. For example, a moment-to-duration framing mayinclude visual content at a point within the progress length that hasbeen duplicated over a duration longer than the point. For instance, avideo frame corresponding to the moment-to-duration framing may beduplicated into multiple video frames so that the same content withinthe video frame is presented during the duration corresponding to themoment-to-duration framing.

As another example, a moment-to-duration framing may include a videosegment with the playback rate and/or playback direction defined by themoment-to-duration framing. For instance, video frames corresponding tothe moment-to-duration framing may be played back at a playback ratedifferent (e.g., faster, slower) than the normal playback rate (1×speed) and/or the order/direction in which the video frames arepresented may be changed (e.g., forward playback direction, reverseplayback direction).

A moment-to-duration framing may include multiple sub-framings withinthe duration of the moment-to-duration framing. A sub-framing may referto a framing within the duration of the moment-to-duration framing. Themultiple sub-framings within the duration may enable different portionsof the visual content corresponding to the duration to be includedwithin a presentation of the visual content. For example, for amoment-to-duration framing that extend a moment (e.g., point in time,duration of time) within the progress length to a duration longer thanthe moment within the progress length/presentation of the video content,multiple sub-framings may simulate the video being paused for theduration and different portions of the visual content being presentedwhile the video is paused.

FIG. 6D illustrate an example moment-to-duration framing of visualcontent 600. The visual content 600 may corresponds to visual content ofa video at a moment (e.g., a point in time) within the progress lengthof the video. For example, the visual content 600 may be visual contentof a video frame within the video. The moment-to-duration framing of thevisual content 600 may extend the moment within the progress length to aduration longer than the moment within the progress length/presentationof the video content. The moment-to-duration framing of the visualcontent 600 may include the visual content 600 being duplicated over theduration (the video frame being duplicated to extend the duration) sothat the presentation of the video appears to be paused during playbackof the duration. The moment-to-duration framing of the visual content600 may include multiple sub-framings within the duration. For example,as shown in FIG. 6, the moment-to-duration framing of the visual content600 may include three sub-framings within the duration. For instance,the multiple sub-framings of the visual content 600 may include theviewing window 610 being positioned (1) at the front of the visualcontent 600 and being leveled within the visual content 600 at thebeginning of the duration, (2) at the back of the visual content 600 andbeing leveled within the visual content 600 within the duration (e.g.,at the mid-point, at non-midpoint), and (3) at front-upper-right of thevisual content 600 and being tiled and having a different dimension atthe end of the duration. Other sub-framings of the visual content arecontemplated.

The viewing path component 106 may be configured to determine one ormore viewing paths for the video based on the framing information and/orother information. A viewing path may refer to a path or a progressionof the positioning of the viewing window within the field of view of thevisual content as the function of progress through the progress length.A viewing path may define the positioning of the viewing window withinthe field of view of the visual content as the function of progressthrough the progress length. The positioning of the viewing windowdefined by the viewing path may include the positioning of the viewingwindow defined by the multiple framings of the visual content. Differentframings of the visual content at different moments within the processlength may dictate the positioning of the viewing window defined by theviewing path. Different framings of the visual content at differentmoment within the process length may define fixed positionings of theviewing window within the viewing path. The viewing path component 106may determine the viewing path to include the fixed positionings of theviewing window within the viewing path. The viewing path component 106may determine the viewing path to include changes in the positioning ofthe viewing window between the fixed positionings of the viewing windowwithin the viewing path.

For example, the multiple framings of the visual content may include afirst framing of the visual content at a first moment within theprogress length and a second framing of the visual content at a secondmoment within the progress length, and the positioning of the viewingwindow defined by the viewing path may include a first positioning ofthe viewing window at the first moment based on the first framing of thevisual content, a second positioning of the viewing window at the secondmoment based on the second framing of the visual content, and/or otherpositioning of the viewing window. Such determination of the viewingpath may enable determination of a path through the visual content thattakes into account the multiple framings of the visual content. Forinstance, the multiple framings may reflect a user's intended spatialand temporal positioning of the viewing window for a spherical video andthe viewing path may define a path on the sphere that takes into accountthe user's designations (e.g., markers) that reflect which portions ofthe spherical video should be presented during playback.

In some implementations, determination of a viewing path for the videobased on the framing information may include determination of changes inthe positioning of the viewing window within the field of view of thevisual content based on the multiple framings of the visual content atmultiple moments within the progress length and/or other information.The viewing path component 106 may determine the viewing path bydetermine how the positioning of the viewing window should changebetween adjacent framings of the visual content (framings of the visualcontent that are next to each other in the progress length). The viewingpath may include viewing path segments for individual pairs of adjacentframings, and the viewing path component 106 may determine a viewingpath segment based on the corresponding pairs of adjacent framings.

For example, the viewing path component 106 may determine a viewing pathsegment for a pair of the first framing and the second framing, and/orother viewing paths segments. The viewing path segment may definechanges in the positioning of the viewing window within the field ofview of the visual content from the first positioning at the firstmoment to the second positioning at the second moment. In someimplementations, the changes in the positioning of the viewing windowwithin the field of view of the visual content from the firstpositioning at the first moment to the second positioning at the secondmoment may include changes in one or more of a viewing direction, aviewing size, a viewing rotation, and/or a viewing projection for theviewing window.

FIGS. 7A and 7B illustrate examples of viewing path segments 720, 725.The viewing paths 720, 725 may be determined based on the framings ofthe visual content 600 shown in FIGS. 6A, 6B, and 6C. The framings ofthe visual content 600 shown in FIGS. 6A, 6B, and 6C may define fixedpositionings of the viewing window 610 for the visual content 600 atdifferent moment within the progress length of the visual content 600.The viewing path for the visual content may be determined to include theviewing path segment 720, 725.

The adjacent framings shown in FIGS. 6A and 6B may be used to determinethe viewing path segment 720. Adjacent framings of the visual contentdefine fixed positionings of the viewing window within the viewing pathat their corresponding moments (at the first moment and the secondmoment). The viewing path component 106 may determine the viewing pathsegment 720 to include the fixed positionings of the viewing windowwithin the viewing path so that the viewing path segment 720 starts (atthe first moment) with the viewing window 610 positioned at the front ofthe visual content 600 and being leveled within the visual content 600and ends (at the second moment) with the viewing window 710 positionedat the back of the visual content 600 and being leveled within thevisual content 600.

The viewing path component 106 may determine the viewing path segment720 to include changes in the positioning of the viewing window betweenthe fixed positionings of the viewing window within the viewing pathsegment 720 so that one or more of the viewing direction, the viewingsize, the viewing rotation, and/or the viewing projection for theviewing window 610 changes from the being positioned at the front of thevisual content 600 and being leveled within the visual content 600 tobeing positioned at the back of the visual content 600 and being leveledwithin the visual content 600. For instance, in FIG. 7A, the viewingpath segment 720 may include changes in the viewing direction of theviewing window 610 from being pointed in the front of the sphere to theback of the sphere.

The adjacent framings shown in FIGS. 6B and 6C may be used to determinethe viewing path segment 725. Adjacent framings of the visual contentdefine fixed positionings of the viewing window within the viewing pathat their corresponding moments (at the second moment and the thirdmoment). The viewing path component 106 may determine the viewing pathsegment 725 to include the fixed positionings of the viewing windowwithin the viewing path so that the viewing path segment 725 starts (atthe second moment) with the viewing window 610 positioned at the back ofthe visual content 600 and being leveled within the visual content 600and ends (at the third moment) with the viewing window 710 positioned atfront-upper-right of the visual content 600, being tilted, and having adifferent dimension (e.g., different shape, smaller size) than thepositioning of the visual content at the first moment and the secondmoment.

The viewing path component 106 may determine the viewing path segment725 to include changes in the positioning of the viewing window betweenthe fixed positionings of the viewing window within the viewing pathsegment 725 so that one or more of the viewing direction, the viewingsize, the viewing rotation, and/or the viewing projection for theviewing window 610 changes from the being positioned at the back of thevisual content 600 and being leveled within the visual content 600 andends with the viewing window 710 positioned at front-upper-right of thevisual content 600, being tilted, and having a different dimension. Forinstance, in FIG. 7B, the viewing path segment 725 may include changesin the viewing direction of the viewing window 610 from being pointed tothe back of the sphere to the front-upper-right of the sphere. Theviewing path segment 725 may include changes in the viewing size of theviewing window 610 from being rectangular in shape to be a smallersquare in shape. The viewing path segment 725 may include changes in theviewing rotation of the viewing window 610 from being leveled to beingtilted. In some implementations, viewing rotations of the fixedpositioning of the viewing window may be ignored and the viewing windowmay be leveled (with respect to horizon) to provide a leveled view ofthe visual content. The viewing path segment 725 may include changes inthe viewing projection of the viewing window 610 from one type ofviewing projection to another type of viewing projection. Other changesin the positioning of the viewing window are contemplated.

One or more types of interpolations may be used to determine changes inthe positioning of the viewing window between fixed positionings of theviewing window within the viewing path. For example, a linearinterpolation may be used to determine changes in the positioning of theviewing window along the viewing path segment 720 so that the viewingdirection changes linearly (the same amount of change in viewingdirection for the same amount of the progress length) from being pointedto the front of the sphere to the back of the sphere. A non-linearinterpolation may be used to determine changes in the positioning of theviewing window along the viewing path segment 725 so that the viewingdirection changes non-linearly (different amount of change in viewingdirection for the same amount of the progress length) from being pointedto the back of the sphere to the front-upper-right of the sphere. Forinstance, an S-type non-linear curve may be used for non-linearinterpolation so there are (1) smaller changes in the viewing directionin the beginning and the end of the viewing path segment 725 and (2)larger changes in the viewing direction in the middle of the viewingpath segment 725, or vice versa. Other types of non-linear interpolationfor changes in the positioning of the viewing window are contemplated.

In some implementations, the viewing path may be changed based changesin the framing information, changes in the framing of the visualcontent, changes in the fixed positionings of the viewing window, and/orother information. For example, the viewing path may be changed based onaddition of a new framing of the visual content, removal of an existingframing of the visual content, and/or modification (e.g., modificationof viewing direction, viewing size, viewing rotation, and/or viewingprojection) of an existing framing of the visual content.

For example, FIGS. 8A and 8B illustrate an example viewing path 810. Theviewing path 810 may have been determined based on fixed positionings802, 804 of a viewing window. The fixed positioning 802, 804 may beadjacent to each other and different from each other. For example, thefixed positionings 802, 804 may corresponding to a viewing window beingpointed in different viewing directions, and the viewing path 810 may bedetermined to include changes from the viewing direction of the fixedpositioning 802 to the viewing direction of the fixed positioning 804.The viewing path 810 may be changed as shown in FIG. 8B. The viewingpath 810 may be changed based on addition of a fixed positioning 806.The fixed positioning 806 may be adjacent to and different from thefixed positioning 804. For example, the fixed positioning 806 maycorrespond to the viewing window being pointed in another direction, andthe viewing path 810 may be changed to include changes from the viewingdirection of the positioning 804 to the viewing direction of thepositioning 806.

The addition of the fixed positioning 806 may cause changes in theviewing path 810 between the fixed positioning 802 and the fixedpositioning 804. Rather than using the shortest path between adjacentpositioning, the viewing path 810 may be determined to include curvesthrough fixed positioning 804. For instance, use of a spherical linearinterpolation to determine a viewing path may result adjacent fixedpositionings being connected by shortest path in the arc. Suchdetermination of the viewing path may result in sharp corners one ormore fixed positionings. Instead, the viewing path 810 may be determinedto include curves at one or more fixed positionings, such as by usingCatMull-Rom interpolation. Usage of the CatMull-Rom for viewing pathdetermination may include conversion of viewing direction defined in aEuler-angle domain/space to a quaternion domain/space.

In some implementations, determination of a viewing path to includecurves at one or more fixed positionings may include setting the rate ofchanges in the positioning of the viewing window at a moment based on apreceding framing of the visual content and a subsequent framing of thevisual content. For example, referring to FIG. 8B, the rate of changesin the positioning of the viewing window at the moment corresponding tothe fixed positioning 804 may be determined based on the framing of thevisual content at the moment corresponding to the fixed positioning 802and the framing of the visual content at the moment corresponding to thefixed positioning 806. For example, the rate of changes in the viewingdirection (slope of the viewing direction) of the viewing window at themoment corresponding to the fixed positioning 804 may be determinedbased on the slope between the viewing direction of the viewing windowat the moment corresponding to the fixed positioning 802 and the viewingdirection of the viewing window at the moment corresponding to the fixedpositioning 806. Thus, changes in the positioning of the viewing windowwithin the field of the view of the visual content at a moment betweenthe preceding moment and the subsequent moment may be determined basedon the framing of the visual content at the preceding moment and theframing of the visual content at the subsequent moment.

The presentation component 108 may be configured to generate one or morepresentations of the video content based on the viewing path and/orother information. A presentation of the video content may include theextents of the visual content within the viewing window. In someimplementations, the extents of the visual content within the viewingwindow may be used to generate a two-dimensional video a sphericalvideo.

Generating a presentation may include displaying the presentation on oneor more display. For example, the presentation component 108 maygenerate a view of the video that includes the extents of the visualcontent within the viewing window, with the viewing window changing(e.g., in viewing direction, in viewing size, in viewing rotation, inviewing projection) as a function of progress through the progresslength of the visual content based on the viewing path.

Generating a presentation may include generating one or more files usedto present the extents of the visual content within the viewing windowon one or more display. The file(s) may be used to present the visualcontent within the viewing window at the time of the generation and/orat a later time. For example, generating a presentation may includegenerating encoded video content that includes the extents of the visualcontent within the viewing window and/or instructions for rendering thepresentation using the viewing window within the visual content. Forexample, the presentation may be generated as an encoded version of avideo clip, and the video clip may be opened in a video player forpresentation. The presentation may be generated as instructions forpresenting visual content, such as instructions defining the viewingwindow as a function of progress through the progress length (e.g.,listing the viewing direction, the viewing size, the viewing rotation,and the viewing projection for time stamps within the video). A videoplayer may use the instructions to retrieve the portions of the visualcontent identified in the instructions for presentation when thevideo/instructions are opened/to be presented.

Presentation information defining the presentation (e.g., encoded videoclip, instructions) may be stored in one or more storage media. Forexample, the presentation information may be stored in the electronicstorage 13, remote storage locations (storage media locatedat/accessible through a server), and/or other locations. In someimplementations, the presentation information may be stored through oneor more intermediary devices. For example, the processor 11 may belocated within a computing device without a connection to the storagedevice (e.g., the computing device lacks WiFi/cellular connection to thestorage device). The presentation information may be stored throughanother device that has the necessary connection (e.g., using aWiFi/cellular connection of a paired mobile device, such as asmartphone, tablet, laptop, to store information in one or more storagemedia). Other storage locations for and storage of the presentationinformation are contemplated.

While the present disclosure may be directed to video content, one ormore other implementations of the system may be configured for othertypes media content. Other types of media content may include one ormore of audio content (e.g., music, podcasts, audio books, and/or otheraudio content), multimedia presentations, images, slideshows, visualcontent (one or more images and/or videos), and/or other media content.

Implementations of the disclosure may be made in hardware, firmware,software, or any suitable combination thereof. Aspects of the disclosuremay be implemented as instructions stored on a machine-readable medium,which may be read and executed by one or more processors. Amachine-readable medium may include any mechanism for storing ortransmitting information in a form readable by a machine (e.g., acomputing device). For example, a tangible computer-readable storagemedium may include read-only memory, random access memory, magnetic diskstorage media, optical storage media, flash memory devices, and others,and a machine-readable transmission media may include forms ofpropagated signals, such as carrier waves, infrared signals, digitalsignals, and others. Firmware, software, routines, or instructions maybe described herein in terms of specific exemplary aspects andimplementations of the disclosure, and performing certain actions.

In some implementations, some or all of the functionalities attributedherein to the system 10 may be provided by external resources notincluded in the system 10. External resources may include hosts/sourcesof information, computing, and/or processing and/or other providers ofinformation, computing, and/or processing outside of the system 10.

Although the processor 11 and the electronic storage 13 are shown to beconnected to the interface 12 in FIG. 1, any communication medium may beused to facilitate interaction between any components of the system 10.One or more components of the system 10 may communicate with each otherthrough hard-wired communication, wireless communication, or both. Forexample, one or more components of the system 10 may communicate witheach other through a network. For example, the processor 11 maywirelessly communicate with the electronic storage 13. By way ofnon-limiting example, wireless communication may include one or more ofradio communication, Bluetooth communication, Wi-Fi communication,cellular communication, infrared communication, or other wirelesscommunication. Other types of communications are contemplated by thepresent disclosure.

Although the processor 11 is shown in FIG. 1 as a single entity, this isfor illustrative purposes only. In some implementations, the processor11 may comprise a plurality of processing units. These processing unitsmay be physically located within the same device, or the processor 11may represent processing functionality of a plurality of devicesoperating in coordination. The processor 11 may be configured to executeone or more components by software; hardware; firmware; some combinationof software, hardware, and/or firmware; and/or other mechanisms forconfiguring processing capabilities on the processor 11.

It should be appreciated that although computer components areillustrated in FIG. 1 as being co-located within a single processingunit, in implementations in which processor 11 comprises multipleprocessing units, one or more of computer program components may belocated remotely from the other computer program components. Whilecomputer program components are described as performing or beingconfigured to perform operations, computer program components maycomprise instructions which may program processor 11 and/or system 10 toperform the operation.

While computer program components are described herein as beingimplemented via processor 11 through machine-readable instructions 100,this is merely for ease of reference and is not meant to be limiting. Insome implementations, one or more functions of computer programcomponents described herein may be implemented via hardware (e.g.,dedicated chip, field-programmable gate array) rather than software. Oneor more functions of computer program components described herein may besoftware-implemented, hardware-implemented, or software andhardware-implemented

The description of the functionality provided by the different computerprogram components described herein is for illustrative purposes, and isnot intended to be limiting, as any of computer program components mayprovide more or less functionality than is described. For example, oneor more of computer program components may be eliminated, and some orall of its functionality may be provided by other computer programcomponents. As another example, processor 11 may be configured toexecute one or more additional computer program components that mayperform some or all of the functionality attributed to one or more ofcomputer program components described herein.

The electronic storage media of the electronic storage 13 may beprovided integrally (i.e., substantially non-removable) with one or morecomponents of the system 10 and/or removable storage that is connectableto one or more components of the system 10 via, for example, a port(e.g., a USB port, a Firewire port, etc.) or a drive (e.g., a diskdrive, etc.). The electronic storage 13 may include one or more ofoptically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EPROM, EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive,etc.), and/or other electronically readable storage media. Theelectronic storage 13 may be a separate component within the system 10,or the electronic storage 13 may be provided integrally with one or moreother components of the system 10 (e.g., the processor 11). Although theelectronic storage 13 is shown in FIG. 1 as a single entity, this is forillustrative purposes only. In some implementations, the electronicstorage 13 may comprise a plurality of storage units. These storageunits may be physically located within the same device, or theelectronic storage 13 may represent storage functionality of a pluralityof devices operating in coordination.

FIG. 2 illustrates method 200 for generating viewing paths throughvideos. The operations of method 200 presented below are intended to beillustrative. In some implementations, method 200 may be accomplishedwith one or more additional operations not described, and/or without oneor more of the operations discussed. In some implementations, two ormore of the operations may occur substantially simultaneously.

In some implementations, method 200 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, a central processingunit, a graphics processing unit, a microcontroller, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operation of method 200 in response to instructions storedelectronically on one or more electronic storage mediums. The one ormore processing devices may include one or more devices configuredthrough hardware, firmware, and/or software to be specifically designedfor execution of one or more of the operations of method 200.

Referring to FIG. 2 and method 200, at operation 201, video informationmay be obtained. The video information may define a video. The video mayinclude video content having a progress length. The video content mayinclude visual content viewable as a function of progress through theprogress length. The visual content may have a field of view. In someimplementation, operation 201 may be performed by a processor componentthe same as or similar to the video information component 102 (Shown inFIG. 1 and described herein).

At operation 202, framing information may be obtained. Framinginformation for the video may define multiple framings of the visualcontent at multiple moments within the progress length. An individualframing of the visual content may define a positioning of a viewingwindow within the field of view of the visual content at a correspondingmoment within the progress length. The viewing window may define extentsof the visual content to be included within a presentation of the videocontent. The multiple framings of the visual content may include a firstframing of the visual content at a first moment within the progresslength, a second framing of the visual content at a second moment withinthe progress length, and/or other framing of the visual content at othermoments within the progress length. The second framing of the visualcontent may be different from the first framing of the visual content.In some implementations, operation 202 may be performed by a processorcomponent the same as or similar to the framing information component104 (Shown in FIG. 1 and described herein).

At operation 203, a viewing path for the video may be determined basedon the framing information and/or other information. The viewing pathmay define the positioning of the viewing window within the field ofview of the visual content as the function of progress through theprogress length. The positioning of the viewing window may include afirst positioning of the viewing window at the first moment based on thefirst framing of the visual content, a second positioning of the viewingwindow at the second moment based on the second framing of the visualcontent, and/or other positioning of the viewing window at othermoments. In some implementations, operation 203 may be performed by aprocessor component the same as or similar to the viewing path component106 (Shown in FIG. 1 and described herein).

At operation 204, the presentation of the video content may be generatedbased on the viewing path and/or other information. The presentation ofthe video content may include the extents of the visual content withinthe viewing window. In some implementations, operation 204 may beperformed by a processor component the same as or similar to thepresentation component 108 (Shown in FIG. 1 and described herein).

Although the system(s) and/or method(s) of this disclosure have beendescribed in detail for the purpose of illustration based on what iscurrently considered to be the most practical and preferredimplementations, it is to be understood that such detail is solely forthat purpose and that the disclosure is not limited to the disclosedimplementations, but, on the contrary, is intended to covermodifications and equivalent arrangements that are within the spirit andscope of the appended claims. For example, it is to be understood thatthe present disclosure contemplates that, to the extent possible, one ormore features of any implementation can be combined with one or morefeatures of any other implementation.

What is claimed is:
 1. A system that determines viewing paths throughvideos, the system comprising: one or more physical processorsconfigured by machine-readable instructions to: obtain video informationdefining a video, the video including video content having a progresslength, the video content including visual content viewable as afunction of progress through the progress length, the visual contenthaving a field of view; obtain framing information for the video, theframing information defining multiple framings of the visual content atmultiple moments within the progress length, an individual framing ofthe visual content defining a positioning of a viewing window within thefield of view of the visual content at a corresponding moment within theprogress length, the viewing window defining extents of the visualcontent to be included within a presentation of the video content,wherein the multiple framings of the visual content include a firstframing of the visual content at a first moment within the progresslength and a second framing of the visual content at a second momentwithin the progress length, the second framing of the visual contentdifferent from the first framing of the visual content; determine aviewing path for the video based on the framing information, the viewingpath defining the positioning of the viewing window within the field ofview of the visual content as the function of progress through theprogress length, the positioning of the viewing window including a firstpositioning of the viewing window at the first moment based on the firstframing of the visual content and a second positioning of the viewingwindow at the second moment based on the second framing of the visualcontent; and generate the presentation of the video content based on theviewing path, the presentation of the video content including theextents of the visual content within the viewing window.
 2. The systemof claim 1, wherein the individual framing of the visual content definesthe positioning of the viewing window within the field of view of thevisual content based on a viewing direction, a viewing size, and aviewing rotation.
 3. The system of claim 2, wherein the individualframing of the visual content further defines a viewing projection ofthe visual content within the viewing window.
 4. The system of claim 3,wherein the framing information is obtained based on a user'sinteraction with a user interface, the user interface enabling the userto set one or more of the viewing direction, the viewing size, theviewing rotation, and/or the viewing projection.
 5. The system of claim1, wherein at least one of the multiple framings include amoment-to-duration framing, the moment-to-duration framing extending amoment within the progress length to a duration longer than the momentwithin the presentation of the video content, the moment-to-durationframing including multiple sub-framings within the duration.
 6. Thesystem of claim 1, wherein the video includes a spherical video and thevisual content is viewable from a point of view as the function ofprogress through the progress length.
 7. The system of claim 1, whereindetermination of the viewing path for the video based on the framinginformation includes determination of changes in the positioning of theviewing window within the field of view of the visual content based onthe multiple framings of the visual content at multiple moments withinthe progress length.
 8. The system of claim 7, wherein: the viewing pathincludes viewing path segments for individual pairs of adjacentframings; the viewing path includes a first viewing path segment for apair of the first framing and the second framing; and the first viewingpath segment defines changes in the positioning of the viewing windowwithin the field of view of the visual content from the firstpositioning at the first moment to the second positioning at the secondmoment.
 9. The system of claim 8, wherein the changes in the positioningof the viewing window within the field of view of the visual contentfrom the first positioning at the first moment to the second positioningat the second moment includes changes in one or more of a viewingdirection, a viewing size, a viewing rotation, and/or a viewingprojection for the viewing window.
 10. The system of claim 8, wherein arate of the changes in the positioning of the viewing window within thefield of view of the visual content at the second moment is determinedbased on the first framing of the visual content at the first moment anda third framing of the visual content at a third moment, the secondmoment being between the first moment and the third moment.
 11. A methodfor determining viewing paths through videos, the method performed by acomputing system including one or more processors, the methodcomprising: obtaining, by the computing system, video informationdefining a video, the video including video content having a progresslength, the video content including visual content viewable as afunction of progress through the progress length, the visual contenthaving a field of view; obtaining, by the computing system, framinginformation for the video, the framing information defining multipleframings of the visual content at multiple moments within the progresslength, an individual framing of the visual content defining apositioning of a viewing window within the field of view of the visualcontent at a corresponding moment within the progress length, theviewing window defining extents of the visual content to be includedwithin a presentation of the video content, wherein the multipleframings of the visual content include a first framing of the visualcontent at a first moment within the progress length and a secondframing of the visual content at a second moment within the progresslength, the second framing of the visual content different from thefirst framing of the visual content; determining, by the computingsystem, a viewing path for the video based on the framing information,the viewing path defining the positioning of the viewing window withinthe field of view of the visual content as the function of progressthrough the progress length, the positioning of the viewing windowincluding a first positioning of the viewing window at the first momentbased on the first framing of the visual content and a secondpositioning of the viewing window at the second moment based on thesecond framing of the visual content; and generating, by the computingsystem, the presentation of the video content based on the viewing path,the presentation of the video content including the extents of thevisual content within the viewing window.
 12. The method of claim 11,wherein the individual framing of the visual content defines thepositioning of the viewing window within the field of view of the visualcontent based on a viewing direction, a viewing size, and a viewingrotation.
 13. The method of claim 12, wherein the individual framing ofthe visual content further defines a viewing projection of the visualcontent within the viewing window.
 14. The method of claim 13, whereinthe framing information is obtained based on a user's interaction with auser interface, the user interface enabling the user to set one or moreof the viewing direction, the viewing size, the viewing rotation, and/orthe viewing projection.
 15. The method of claim 11, wherein at least oneof the multiple framings include a moment-to-duration framing, themoment-to-duration framing extending a moment within the progress lengthto a duration longer than the moment within the presentation of thevideo content, the moment-to-duration framing including multiplesub-framings within the duration.
 16. The method of claim 11, whereinthe video includes a spherical video and the visual content is viewablefrom a point of view as the function of progress through the progresslength.
 17. The method of claim 11, wherein determining the viewing pathfor the video based on the framing information includes determiningchanges in the positioning of the viewing window within the field ofview of the visual content based on the multiple framings of the visualcontent at multiple moments within the progress length.
 18. The methodof claim 17, wherein: the viewing path includes viewing path segmentsfor individual pairs of adjacent framings; the viewing path includes afirst viewing path segment for a pair of the first framing and thesecond framing; and the first viewing path segment defines changes inthe positioning of the viewing window within the field of view of thevisual content from the first positioning at the first moment to thesecond positioning at the second moment.
 19. The method of claim 18,wherein the changes in the positioning of the viewing window within thefield of view of the visual content from the first positioning at thefirst moment to the second positioning at the second moment includeschanges in one or more of a viewing direction, a viewing size, a viewingrotation, and/or a viewing projection for the viewing window.
 20. Themethod of claim 18, wherein a rate of the changes in the positioning ofthe viewing window within the field of view of the visual content at thesecond moment is determined based on the first framing of the visualcontent at the first moment and a third framing of the visual content ata third moment, the second moment being between the first moment and thethird moment.